package pojo.operacional;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import pojo.cadastro.financeiro.FormaPagamento;

@Entity
@Table(name = "tbf_venda_lancamento")
@NamedQueries({
    @NamedQuery(name = "VendaLancamento.listAll", query = "SELECT vl FROM VendaLancamento vl ORDER BY vl.dataVencimento")
})
public class VendaLancamento implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "VLA_LON_ID")
    private long id;
    @Column(name = "VLA_DBL_VALOR")
    private double valor;
    @Column(name = "VLA_DTA_VENC", nullable = false)
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataVencimento;
    @Column(name = "VLA_DTA_PAGTO")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataPagamento;
    @Column(name = "VLA_BOOL_RECEBIDO")
    private boolean recebido;
    @Column(name = "VLA_INT_NUM_PARC")
    private int numParcela;

    @ManyToOne
    @JoinColumn(name = "FPG_LON_ID", nullable = false)
    private FormaPagamento formaPagamento;

    @ManyToOne
    @JoinColumn(name = "VEN_LON_ID", nullable = false)
    private Venda venda;

    public Date getDataPagamento() {
        return dataPagamento;
    }

    public void setDataPagamento(Date dataPagamento) {
        this.dataPagamento = dataPagamento;
    }

    public Date getDataVencimento() {
        return dataVencimento;
    }

    public void setDataVencimento(Date dataVencimento) {
        this.dataVencimento = dataVencimento;
    }

    public FormaPagamento getFormaPagamento() {
        return formaPagamento;
    }

    public void setFormaPagamento(FormaPagamento formaPagamento) {
        this.formaPagamento = formaPagamento;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public int getNumParcela() {
        return numParcela;
    }

    public void setNumParcela(int numParcela) {
        this.numParcela = numParcela;
    }

    public boolean isRecebido() {
        return recebido;
    }

    public void setRecebido(boolean recebido) {
        this.recebido = recebido;
    }

    public Venda getVenda() {
        return venda;
    }

    public void setVenda(Venda venda) {
        this.venda = venda;
    }

    public double getValor() {
        return valor;
    }

    public void setValor(double valor) {
        this.valor = valor;
    }
}
